perm filename TMRLAP[LAP,SYS] blob sn#010437 filedate 1973-07-03 generic text, type T, neo UTF8
00100	(SETQ IBASE (SETQ BASE (ADD1 7)))
00200	
00300	(DEFPROP LAP
00400		 (LAMBDA (SL)
00500			 (PROG (LOC CONLIST GEN REMOB L)
00600			       (SETQ GEN (GENSYM))
00700			       (SETQ CONLIST (LIST NIL))
00800			       (SETQ LOC BPORG)
00900			  A    (COND ((NULL (SETQ L (READ))) (GO END))
01000				     ((ATOM L) (DEFLOC L LOC) (GO A)))
01100			       (DEPOSIT LOC (GWD L))
01200			       (SETQ LOC (ADD1 LOC))
01300			       (GO A)
01400			  END  (DEFLOC GEN LOC)
01500			  EN1  (COND ((NULL (SETQ CONLIST (CDR CONLIST)))
01600				      (EVAL (CONS (QUOTE REMOB) REMOB))
01700				      (PUTPROP (CAR SL) (NUMVAL BPORG) (CADR SL))
01800				      (RETURN (LIST (CAR SL) (SETQ BPORG LOC)))))
01900			       (SETQ KLIST (CONS (CONS (CAR CONLIST) LOC) KLIST))
02000			       (DEPOSIT LOC (GWD (CAR CONLIST)))
02100			       (SETQ LOC (ADD1 LOC))
02200			       (GO EN1)))
02300		 FEXPR)
02400	
02500	(DEFPROP TYPE (LAMBDA (X) (COND ((NUMBERP X) (CADR X)))) EXPR)
02600	
02700	(DEFPROP GWD
02800	 (LAMBDA (X)
02900	  (PROG (WRD FLD)
03000		(SETQ FLD (QUOTE ((22 . -1) (27 . 17) (0 . 777777) (22 . 777777))))
03100		(SETQ WRD 0)
03200		(MAPCAR
03300		 (FUNCTION (LAMBDA (ZZ)
03400				   (PROG2 (SETQ WRD
03500						(PLUS WRD
03600						      (LSH (BOOLE 1
03700								  (CDAR FLD)
03800								  (LAPEVAL ZZ))
03900							   (CAAR FLD))))
04000					  (SETQ FLD (CDR FLD)))))
04100		 X)
04200		(RETURN WRD)))
04300	 EXPR)
04400	
04500	(DEFPROP LAPEVAL
04600	 (LAMBDA (X)
04700	  (COND ((NUMBERP X) X)
04800		((ATOM X) (GVAL X))
04900		((MEMBER (CAR X) (QUOTE (E QUOTE)))
05000		 (MAKNUM (COND ((OR (NOT (ATOM (SETQ X (CADR X))))
05100				    (AND (NUMBERP X) (NOT (EQ (PLUS X 0) X)))
05200				    (EQ (CAR (EXPLODE X)) (QUOTE /")))
05300				(PROG (Y)
05400				      (SETQ Y QLIST)
05500				 A    (COND ((NULL Y)
05600					     (RETURN (CAR (SETQ QLIST
05700								(CONS X QLIST)))))
05800					    ((AND (EQUAL X (CAR Y))
05900						  (EQ (TYPE X) (TYPE (CAR Y))))
06000					     (RETURN (CAR Y))))
06100				      (SETQ Y (CDR Y))
06200				      (GO A)))
06300			       (T X))
06400			 (QUOTE FIXNUM)))
06500		((EQ (CAR X) (QUOTE SPECIAL))
06600		 (COND ((NULL (GET (CADR X) (QUOTE VALUE)))
06700			(PUTPROP (CADR X) (LIST NIL) (QUOTE VALUE))))
06800		 (MAKNUM (GET (CADR X) (QUOTE VALUE)) (QUOTE FIXNUM)))
06900		((EQ (CAR X) (QUOTE C))
07000		 (PROG (N CPTR)
07100		       (SETQ CPTR KLIST)
07200		  L11  (COND ((NULL CPTR) (GO L12))
07300			     ((EQUAL (CDR X) (CAAR CPTR)) (RETURN (CDAR CPTR))))
07400		       (SETQ CPTR (CDR CPTR))
07500		       (GO L11)
07600		  L12  (GVAL GEN)
07700		       (SETQ N 0)
07800		       (SETQ CPTR CONLIST)
07900		  A    (COND ((NULL (CDR CPTR)) (RPLACD CPTR (LIST (CDR X)))))
08000		       (COND ((EQUAL (CDR X) (CADR CPTR)) (RETURN N)))
08100		       (SETQ N (ADD1 N))
08200		       (SETQ CPTR (CDR CPTR))
08300		       (GO A)))
08400		(T (PLUS (LAPEVAL (CAR X)) (LAPEVAL (CDR X))))))
08500	 EXPR)
08600	
08700	(DEFPROP DEFLOC
08800		 (LAMBDA (SYM VAL)
08900			 (PROG (Z)
09000			       (SETQ REMOB (CONS SYM REMOB))
09100			       (COND ((SETQ Z (GET SYM (QUOTE UNDEF))) (GO PATCH)))
09200			  A    (RETURN (PUTPROP SYM VAL (QUOTE SYM)))
09300			  PATCH(COND ((NULL Z) (RPLACD SYM (CDDDR SYM)) (GO A)))
09400			       (DEPOSIT (CAR Z) (PLUS (EXAMINE (CAR Z)) VAL))
09500			       (SETQ Z (CDR Z))
09600			       (GO PATCH)))
09700		 EXPR)
09800	
09900	(DEFPROP DEFSYM (LAMBDA (SYM VAL) (PUTPROP SYM VAL (QUOTE SYM))) EXPR)
10000	
10100	(DEFPROP GVAL
10200		 (LAMBDA (SYM)
10300			 (COND ((GET SYM (QUOTE SYM)))
10400			       ((GET SYM (QUOTE VALUE)) (MAKNUM SYM (QUOTE FIXNUM)))
10500			       (T (PUTPROP SYM
10600					   (CONS LOC (GET SYM (QUOTE UNDEF)))
10700					   (QUOTE UNDEF))
10800				  0)))
10900		 EXPR)
11000	
11100	(DEFPROP OPS
11200		 (LAMBDA (L)
11300			 (PROG NIL
11400			  A    (COND ((NULL L) (RETURN T)))
11500			       (DEFSYM (CAAR L) (CADAR L))
11600			       (SETQ L (CDR L))
11700			       (GO A)))
11800		 FEXPR)
11900	
12000	(DEFPROP REMLAP
12100		 (LAMBDA NIL
12200			 (PROG (Z)
12300			       (SETQ Z
12400				     (QUOTE (LAP LAPEVAL
12500						 GWD
12600						 DEFLOC
12700						 DEFSYM
12800						 REMLAP
12900						 ILAP
13000						 GVAL
13100						 TYPE)))
13200			  A    (COND ((NULL Z) (GO B)))
13300			       (REMPROP (CAR Z) (QUOTE EXPR))
13400			       (REMPROP (CAR Z) (QUOTE FEXPR))
13500			       (SETQ Z (CDR Z))
13600			       (GO A)
13700			  B    (REMPROP (QUOTE REMLAP) (QUOTE EXPR))))
13800		 EXPR)
13900	
14000	(OPS
14100		(ADD 270000)
14200		(CALL 34000)
14300		(CALLF 36000)
14400		(CALLF@ 36020)
14500		(CAIE 302000)
14600		(CAIN 306000)
14700		(CAME 312000)
14800		(CAMN 316000)
14900		(CLEARB 403000)
15000		(CLEARM 402000)
15100		(DPB 137000)
15200		(EXCH 250000)
15300		(HLLZS@ 513020)
15400		(HLRZ 554000)
15500		(HLRZ@ 554020)
15600		(HRLM 506000)
15700		(HRLM@ 506020)
15800		(HRRM 542000)
15900		(HRRZS@ 553020)
16000		(HRRZ 550000)
16100		(HRRM@ 542020)
16200		(HRRZ@ 550020)
16300		(JCALL 35000)
16400		(JCALLF 37000)
16500		(JCALLF@ 37020)
16600		(JRST 254000)
16700		(JSP 265000)
16800		(JUMPE 322000)
16900		(JUMPN 326000)
17000		(MOVE 200000)
17100		(MOVEI 201000)
17200		(MOVEM 202000)
17300		(MOVNI 211000)
17400		(P 14)
17500		(POP 262000)
17600		(POPJ 263000)
17700		(PUSH 261000)
17800		(PUSHJ 260000)
17900		(SOJE 362000)
18000		(SOJN 366000)
18100		(SUB 274000)
18200		(TDZA 634000))
18300	
18400	(COND ((NULL (GET (QUOTE QLIST) (QUOTE VALUE))) (SETQ QLIST NIL)))
18500	
18600	(COND ((NULL (GET (QUOTE KLIST) (QUOTE VALUE))) (SETQ KLIST NIL)))
18700	
18800	(SETQ SAVEBPORG BPORG)
18900	
19000	(SETQ LAPORG BPEND)
19100	
19200	(SETQ SAVELAPORG (SETQ BPORG (*DIF BPEND 1000)))
19300	
19400	(LAP GWD SUBR)
19500		(PUSH P (C 0))
19600		(PUSH P 1)
19700		(PUSHJ P G0123)
19800		(137000 1 (C 222200 0 -1 P))
19900		(PUSHJ P G0123)
20000		(242000 1 27)
20100		(436000 1 -1 P)
20200		(PUSHJ P G0123)
20300		(137000 1 (C 2200 0 -1 P))
20400		(PUSHJ P G0123)
20500		(514000 1 1)
20600		(436000 1 -1 P)
20700	G0124	(POP P 1)
20800		(POP P 1)
20900		(JRST 0 FIX1A)
21000	G0125	(POP P 1)
21100		(JRST 0 G0124)
21200	G0123	(MOVE 2 -1 P)
21300		(JUMPE 2 G0125)
21400		(HLRZ 1 0 2)
21500		(HRRZ 2 0 2)
21600		(MOVEM 2 -1 P)
21700		(CALL 1 (E LAPEVAL))
21800		(JRST 0 NUMVAL)
21900		NIL
22000	 
22100	
22200	(LAP LAP FSUBR) 
22300		(JSP 6 SPECBIND) 
22400		(0 0 (SPECIAL LOC)) 
22500		(0 0 (SPECIAL CONLIST)) 
22600		(0 0 (SPECIAL GEN)) 
22700		(0 0 (SPECIAL REMOB)) 
22800		(PUSH P 1) 
22900		(CALL 0 (E GENSYM)) 
23000		(MOVEM 1 (SPECIAL GEN)) 
23100		(MOVEI 1 (QUOTE NIL)) 
23200		(CALL 1 (E NCONS)) 
23300		(MOVEM 1 (SPECIAL CONLIST)) 
23400		(MOVE 1 (SPECIAL BPORG)) 
23500		(MOVEM 1 (SPECIAL LOC)) 
23600		(MOVEI 2 (QUOTE FIXNUM)) 
23700		(MOVEI 1 (QUOTE 0)) 
23800		(CALL 2 (E MAKNUM)) 
23900		(CALL 1 (E ADD1)) 
24000		(PUSH P 1) 
24100		(CALL 1 (E CDDR)) 
24200		(HLLZS@ 0 1) 
24300		(MOVEI 3 (QUOTE %EXECUTIONCOUNT%)) 
24400		(MOVE 2 0 P) 
24500		(HLRZ@ 1 -1 P) 
24600		(CALL 3 (E PUTPROP)) 
24700		(MOVE 2 (SPECIAL %FUNCTIONLIST%)) 
24800		(HLRZ@ 1 -1 P) 
24900		(CALL 2 (E CONS)) 
25000		(MOVEM 1 (SPECIAL %FUNCTIONLIST%)) 
25100		(MOVEI 2 (QUOTE FIXNUM)) 
25200		(HRRZ@ 1 0 P) 
25300		(HRRZ@ 1 1) 
25400		(PUSH P (SPECIAL LOC)) 
25500		(CALL 2 (E MAKNUM)) 
25600		(CALL 1 (E NCONS)) 
25700		(MOVEI 2 (QUOTE 0)) 
25800		(CALL 2 (E XCONS)) 
25900		(MOVEI 2 (QUOTE 350000)) 
26000		(CALL 2 (E XCONS)) 
26100		(CALL 1 (E GWD)) 
26200		(MOVE 2 1) 
26300		(POP P 1) 
26400		(CALL 2 (E DEPOSIT)) 
26500		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
26600	TAG1 	(MOVE 1 (SPECIAL LOC)) 
26700		(CALL 1 (E ADD1)) 
26800		(MOVEM 1 (SPECIAL LOC)) 
26900	TAG2 	(CALL 0 (E READ)) 
27000		(MOVEM 1 0 P) 
27100		(JUMPE 1 TAG3) 
27200		(CALL 1 (E ATOM)) 
27300		(JUMPE 1 TAG11) 
27400		(MOVE 2 (SPECIAL LOC)) 
27500		(MOVE 1 0 P) 
27600		(CALL 2 (E DEFLOC)) 
27700		(JRST 0 TAG2) 
27800	TAG11 	(MOVE 1 0 P) 
27900		(PUSH P (SPECIAL LOC)) 
28000		(CALL 1 (E GWD)) 
28100		(MOVE 2 1) 
28200		(POP P 1) 
28300		(CALL 2 (E DEPOSIT)) 
28400		(JRST 0 TAG1) 
28500	TAG3 	(MOVE 2 (SPECIAL LOC)) 
28600		(MOVE 1 (SPECIAL GEN)) 
28700		(CALL 2 (E DEFLOC)) 
28800	TAG4 	(HRRZ@ 1 (SPECIAL CONLIST)) 
28900		(MOVEM 1 (SPECIAL CONLIST)) 
29000		(JUMPN 1 TAG13) 
29100		(MOVE 1 (SPECIAL REMOB)) 
29200		(CALL 17 (E REMOB)) 
29300		(HLRZ@ 1 -2 P) 
29400		(PUSH P 1) 
29500		(MOVE 1 (SPECIAL BPORG)) 
29600		(CALL 1 (E NUMVAL)) 
29700		(HRRZ@ 3 -3 P) 
29800		(HLRZ@ 3 3) 
29900		(MOVE 2 1) 
30000		(POP P 1) 
30100		(CALL 3 (E PUTPROP)) 
30200		(MOVE 1 (SPECIAL LOC)) 
30300		(MOVEM 1 (SPECIAL BPORG)) 
30400		(CALL 1 (E NCONS)) 
30500		(HLRZ@ 2 -2 P) 
30600		(CALL 2 (E XCONS)) 
30700		(JRST 0 TAG5) 
30800	TAG13 	(MOVE 2 (SPECIAL LOC)) 
30900		(HLRZ@ 1 (SPECIAL CONLIST)) 
31000		(CALL 2 (E CONS)) 
31100		(MOVE 2 (SPECIAL KLIST)) 
31200		(CALL 2 (E CONS)) 
31300		(MOVEM 1 (SPECIAL KLIST)) 
31400		(HLRZ@ 1 (SPECIAL CONLIST)) 
31500		(PUSH P (SPECIAL LOC)) 
31600		(CALL 1 (E GWD)) 
31700		(MOVE 2 1) 
31800		(POP P 1) 
31900		(CALL 2 (E DEPOSIT)) 
32000		(MOVE 1 (SPECIAL LOC)) 
32100		(CALL 1 (E ADD1)) 
32200		(MOVEM 1 (SPECIAL LOC)) 
32300		(JRST 0 TAG4) 
32400	TAG5 	(SUB P (C 0 0 3 3)) 
32500		(JRST 0 SPECSTR) 
32600		NIL 
32700	
32800	(REMPROP (QUOTE LAP) (QUOTE FEXPR))
32900	
33000	(DEFPROP LAP
33100		 (LAMBDA (SL)
33200			 (PROG (LOC CONLIST GEN REMOB L)
33300			       (SETQ GEN (GENSYM))
33400			       (SETQ CONLIST (LIST NIL))
33500			       (SETQ LOC BPORG)
33600			  A    (COND ((NULL (SETQ L (READ))) (GO END))
33700				     ((ATOM L) (DEFLOC L LOC) (GO A)))
33800			       (DEPOSIT LOC (GWD L))
33900			       (SETQ LOC (ADD1 LOC))
34000			       (GO A)
34100			  END  (DEFLOC GEN LOC)
34200			  EN1  (COND ((NULL (SETQ CONLIST (CDR CONLIST)))
34300				      (EVAL (CONS (QUOTE REMOB) REMOB))
34400				      (PUTPROP (CAR SL) (NUMVAL BPORG) (CADR SL))
34500				      (RETURN (LIST (CAR SL) (SETQ BPORG LOC)))))
34600			       (SETQ KLIST (CONS (CONS (CAR CONLIST) LOC) KLIST))
34700			       (DEPOSIT LOC (GWD (CAR CONLIST)))
34800			       (SETQ LOC (ADD1 LOC))
34900			       (GO EN1)))
35000		 FEXPR)
35100	
35200	(LAP LAPEVAL SUBR)
35300		(PUSH P 1)
35400		(CALL 1 (E NUMBERP))
35500		(JUMPE 1 G0006)
35600		(MOVE 1 0 P)
35700		(JRST 0 G0005)
35800	G0006	(MOVE 1 0 P)
35900		(CALL 1 (E ATOM))
36000		(JUMPE 1 G0008)
36100		(MOVE 1 0 P)
36200		(CALL 1 (E GVAL))
36300		(JRST 0 G0005)
36400	G0008	(MOVEI 2 (QUOTE (E QUOTE)))
36500		(HLRZ@ 1 0 P)
36600		(CALL 2 (E MEMBER))
36700		(JUMPE 1 G0011)
36800		(HRRZ@ 1 0 P)
36900		(HLRZ@ 1 1)
37000		(MOVEM 1 0 P)
37100		(CALL 1 (E ATOM))
37200		(JUMPE 1 G0016)
37300		(MOVE 1 0 P)
37400		(CALL 1 (E NUMBERP))
37500		(JUMPE 1 G0019)
37600		(MOVEI 2 (QUOTE 0))
37700		(MOVE 1 0 P)
37800		(CALL 2 (E *PLUS))
37900		(CAME 1 0 P)
38000		(JRST 0 G0016)
38100	G0019	(MOVE 1 0 P)
38200		(CALL 1 (E EXPLODE))
38300		(HLRZ@ 2 1)
38400		(CAIE 2 (QUOTE /"))
38500		(JRST 0 G0015)
38600	G0016	(PUSH P (SPECIAL QLIST))
38700	G0001	(MOVE 1 0 P)
38800		(JUMPN 1 G0028)
38900		(MOVE 2 (SPECIAL QLIST))
39000		(MOVE 1 -1 P)
39100		(CALL 2 (E CONS))
39200		(MOVEM 1 (SPECIAL QLIST))
39300		(HLRZ@ 1 1)
39400		(JRST 0 G0024)
39500	G0028	(HLRZ@ 2 1)
39600		(MOVE 1 -1 P)
39700		(CALL 2 (E EQUAL))
39800		(JUMPE 1 G0032)
39900		(MOVE 1 -1 P)
40000		(CALL 1 (E TYPE))
40100		(PUSH P 1)
40200		(HLRZ@ 1 -1 P)
40300		(CALL 1 (E TYPE))
40400		(POP P 2)
40500		(CAME 1 2)
40600		(JRST 0 G0032)
40700		(HLRZ@ 1 0 P)
40800		(JRST 0 G0024)
40900	G0032	(HRRZ@ 1 0 P)
41000		(MOVEM 1 0 P)
41100		(JRST 0 G0001)
41200	G0024	(SUB P (C 0 0 1 1))
41300		(JRST 0 G0014)
41400	G0015	(MOVE 1 0 P)
41500	G0045
41600	G0014	(MOVEI 2 (QUOTE FIXNUM))
41700		(CALL 2 (E MAKNUM))
41800		(JRST 0 G0005)
41900	G0011	(HLRZ@ 1 0 P)
42000		(CAIE 1 (QUOTE SPECIAL))
42100		(JRST 0 G0049)
42200		(MOVEI 2 (QUOTE VALUE))
42300		(HRRZ@ 1 0 P)
42400		(HLRZ@ 1 1)
42500		(CALL 2 (E GET))
42600		(JUMPN 1 G0052)
42700		(CALL 1 (E NCONS))
42800		(MOVEI 3 (QUOTE VALUE))
42900		(MOVE 2 1)
43000		(HRRZ@ 1 0 P)
43100		(HLRZ@ 1 1)
43200		(CALL 3 (E PUTPROP))
43300	G0052	(MOVEI 2 (QUOTE VALUE))
43400		(HRRZ@ 1 0 P)
43500		(HLRZ@ 1 1)
43600		(CALL 2 (E GET))
43700		(MOVEI 2 (QUOTE FIXNUM))
43800		(CALL 2 (E MAKNUM))
43900		(JRST 0 G0005)
44000	G0049	(CAIE 1 (QUOTE C))
44100		(JRST 0 G0062)
44200		(PUSH P (SPECIAL KLIST))
44300		(PUSH P (C 0 0 (QUOTE NIL)))
44400	G0002	(MOVE 1 -1 P)
44500		(JUMPE 1 G0003)
44600		(HLRZ@ 2 1)
44700		(HLRZ@ 2 2)
44800		(HRRZ@ 1 -2 P)
44900		(CALL 2 (E EQUAL))
45000		(JUMPE 1 G0068)
45100		(HLRZ@ 1 -1 P)
45200		(HRRZ@ 1 1)
45300		(JRST 0 G0064)
45400	G0068	(HRRZ@ 1 -1 P)
45500		(MOVEM 1 -1 P)
45600		(JRST 0 G0002)
45700	G0003	(MOVE 1 (SPECIAL GEN))
45800		(CALL 1 (E GVAL))
45900		(MOVEI 2 (QUOTE 0))
46000		(MOVE 3 (SPECIAL CONLIST))
46100		(MOVEM 3 -1 P)
46200		(MOVEM 2 0 P)
46300	G0004	(HRRZ@ 1 -1 P)
46400		(JUMPN 1 G0079)
46500		(HRRZ@ 1 -2 P)
46600		(CALL 1 (E NCONS))
46700		(HRRM@ 1 -1 P)
46800	G0079	(HRRZ@ 2 -1 P)
46900		(HLRZ@ 2 2)
47000		(HRRZ@ 1 -2 P)
47100		(CALL 2 (E EQUAL))
47200		(JUMPE 1 G0085)
47300		(MOVE 1 0 P)
47400		(JRST 0 G0064)
47500	G0085	(MOVE 1 0 P)
47600		(CALL 1 (E ADD1))
47700		(MOVEM 1 0 P)
47800		(HRRZ@ 1 -1 P)
47900		(MOVEM 1 -1 P)
48000		(JRST 0 G0004)
48100	G0064	(SUB P (C 0 0 2 2))
48200		(JRST 0 G0005)
48300	G0062	(HLRZ@ 1 0 P)
48400		(CALL 1 (E LAPEVAL))
48500		(PUSH P 1)
48600		(HRRZ@ 1 -1 P)
48700		(CALL 1 (E LAPEVAL))
48800		(POP P 2)
48900		(CALL 2 (E *PLUS))
49000	G0095
49100	G0005	(SUB P (C 0 0 1 1))
49200		(POPJ P)
49300		NIL
49400	 
49500	
49600	(LAP DEFLOC SUBR)
49700		(PUSH P 2)
49800		(MOVE 2 (SPECIAL REMOB))
49900		(PUSH P 1)
50000		(CALL 2 (E CONS))
50100		(MOVEM 1 (SPECIAL REMOB))
50200		(PUSH P (C 0 0 (QUOTE NIL)))
50300		(MOVEI 2 (QUOTE UNDEF))
50400		(MOVE 1 -1 P)
50500		(CALL 2 (E GET))
50600		(MOVEM 1 0 P)
50700		(JUMPN 1 G0002)
50800	G0001	(MOVEI 3 (QUOTE SYM))
50900		(MOVE 2 -2 P)
51000		(MOVE 1 -1 P)
51100		(CALL 3 (E PUTPROP))
51200		(JRST 0 G0003)
51300	G0002	(MOVE 1 0 P)
51400		(JUMPN 1 G0013)
51500		(HRRZ@ 2 -1 P)
51600		(HRRZ@ 2 2)
51700		(HRRZ@ 2 2)
51800		(HRRM@ 2 -1 P)
51900		(JRST 0 G0001)
52000	G0013	(HLRZ@ 1 0 P)
52100		(PUSH P 1)
52200		(CALL 1 (E EXAMINE))
52300		(MOVE 2 -3 P)
52400		(CALL 2 (E *PLUS))
52500		(MOVE 2 1)
52600		(POP P 1)
52700		(CALL 2 (E DEPOSIT))
52800		(HRRZ@ 1 0 P)
52900		(MOVEM 1 0 P)
53000		(JRST 0 G0002)
53100	G0003	(SUB P (C 0 0 3 3))
53200		(POPJ P)
53300		NIL
53400	 
53500	(LAP DEFSYM SUBR)
53600		(MOVEI 3 (QUOTE SYM))
53700		(JCALL 3 (E PUTPROP))
53800		NIL
53900	
54000	
54100	(LAP GVAL SUBR)
54200		(PUSH P 1)
54300		(MOVEI 2 (QUOTE SYM))
54400		(CALL 2 (E GET))
54500		(JUMPN 1 G0001)
54600		(MOVEI 2 (QUOTE VALUE))
54700		(MOVE 1 0 P)
54800		(CALL 2 (E GET))
54900		(JUMPE 1 G0003)
55000		(MOVEI 2 (QUOTE FIXNUM))
55100		(MOVE 1 0 P)
55200		(CALL 2 (E MAKNUM))
55300		(JRST 0 G0001)
55400	G0003	(MOVEI 2 (QUOTE UNDEF))
55500		(MOVE 1 0 P)
55600		(CALL 2 (E GET))
55700		(MOVE 2 (SPECIAL LOC))
55800		(CALL 2 (E XCONS))
55900		(MOVEI 3 (QUOTE UNDEF))
56000		(MOVE 2 1)
56100		(MOVE 1 0 P)
56200		(CALL 3 (E PUTPROP))
56300		(MOVEI 1 (QUOTE 0))
56400	G0006
56500	G0001	(SUB P (C 0 0 1 1))
56600		(POPJ P)
56700		NIL
56800	 
56900	
57000	(LAP TYPE SUBR)
57100		(PUSH P 1)
57200		(CALL 1 (E NUMBERP))
57300		(JUMPE 1 G0002)
57400		(HRRZ@ 1 0 P)
57500		(HLRZ@ 1 1)
57600	G0002	(SUB P (C 0 0 1 1))
57700		(POPJ P)
57800		NIL
57900	 
58000	(LAP CLEARCOUNTS SUBR) 
58100		(PUSH P (SPECIAL %FUNCTIONLIST%)) 
58200	TAG1 	(MOVE 1 0 P) 
58300		(JUMPE 1 TAG3) 
58400		(MOVEI 3 (QUOTE %EXECUTIONCOUNT%)) 
58500		(MOVEI 2 (QUOTE 0)) 
58600		(HLRZ@ 1 1) 
58700		(CALL 3 (E PUTPROP)) 
58800		(HRRZ@ 1 0 P) 
58900		(MOVEM 1 0 P) 
59000		(JRST 0 TAG1) 
59100	TAG3 	(MOVEI 1 (QUOTE NIL)) 
59200		(SUB P (C 0 0 1 1)) 
59300		(POPJ P) 
59400		NIL 
59500	
59600	(LAP MAXCOUNT SUBR) 
59700		(PUSH P 1) 
59800		(PUSH P (C 0 0 (QUOTE 0) 0)) 
59900		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
60000	TAG1 	(MOVE 1 -2 P) 
60100		(JUMPN 1 TAG6) 
60200		(MOVE 1 -1 P) 
60300		(JRST 0 TAG2) 
60400	TAG6 	(MOVEI 2 (QUOTE %EXECUTIONCOUNT%)) 
60500		(HLRZ@ 1 -2 P) 
60600		(CALL 2 (E GET)) 
60700		(MOVEM 1 0 P) 
60800		(MOVE 2 -1 P) 
60900		(CALL 2 (E *GREAT)) 
61000		(JUMPE 1 TAG10) 
61100		(MOVE 1 0 P) 
61200		(MOVEM 1 -1 P) 
61300	TAG10 	(HRRZ@ 1 -2 P) 
61400		(MOVEM 1 -2 P) 
61500		(JRST 0 TAG1) 
61600	TAG2 	(SUB P (C 0 0 3 3)) 
61700		(POPJ P) 
61800		NIL 
61900	
62000	(LAP MAXWIDTH SUBR) 
62100		(PUSH P 1) 
62200		(PUSH P (C 0 0 (QUOTE 0) 0)) 
62300		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
62400	TAG1 	(MOVE 1 -2 P) 
62500		(JUMPN 1 TAG6) 
62600		(MOVE 1 -1 P) 
62700		(JRST 0 TAG2) 
62800	TAG6 	(HLRZ@ 1 -2 P) 
62900		(CALL 1 (E FLATSIZE)) 
63000		(MOVEM 1 0 P) 
63100		(MOVE 2 -1 P) 
63200		(CALL 2 (E *GREAT)) 
63300		(JUMPE 1 TAG10) 
63400		(MOVE 1 0 P) 
63500		(MOVEM 1 -1 P) 
63600	TAG10 	(HRRZ@ 1 -2 P) 
63700		(MOVEM 1 -2 P) 
63800		(JRST 0 TAG1) 
63900	TAG2 	(SUB P (C 0 0 3 3)) 
64000		(POPJ P) 
64100		NIL 
64200	
64300	(LAP PRINTSPACES SUBR) 
64400		(PUSH P 1) 
64500	TAG1 	(MOVE 1 0 P) 
64600		(CALL 1 (E ZEROP)) 
64700		(JUMPN 1 TAG3) 
64800		(MOVEI 1 (QUOTE / )) 
64900		(CALL 1 (E PRINC)) 
65000		(MOVE 1 0 P) 
65100		(CALL 1 (E SUB1)) 
65200		(MOVEM 1 0 P) 
65300		(JRST 0 TAG1) 
65400	TAG3 	(MOVEI 1 (QUOTE NIL)) 
65500		(SUB P (C 0 0 1 1)) 
65600		(POPJ P) 
65700		NIL 
65800	
65900	(LAP PRINTTABS SUBR) 
66000		(PUSH P 1) 
66100	TAG1 	(MOVE 1 0 P) 
66200		(CALL 1 (E ZEROP)) 
66300		(JUMPN 1 TAG3) 
66400		(MOVEI 1 (QUOTE /	)) 
66500		(CALL 1 (E PRINC)) 
66600		(MOVE 1 0 P) 
66700		(CALL 1 (E SUB1)) 
66800		(MOVEM 1 0 P) 
66900		(JRST 0 TAG1) 
67000	TAG3 	(MOVEI 1 (QUOTE NIL)) 
67100		(SUB P (C 0 0 1 1)) 
67200		(POPJ P) 
67300		NIL 
67400	
67500	(LAP SHOWCOUNTS FSUBR) 
67600		(JSP 6 SPECBIND)
67700		(0 0 (SPECIAL BASE))
67800		(0 0 (SPECIAL *NOPOINT))
67900		(PUSH P 1) 
68000		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68100		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68200		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68300		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68400		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68500		(PUSH P (C 0 0 (QUOTE NIL) 0)) 
68600		(MOVEI 2 (QUOTE 5)) 
68700		(MOVE 1 2) 
68800		(CALL 2 (E *PLUS)) 
68900		(MOVEM 1 (SPECIAL BASE)) 
69000		(MOVEI 1 (QUOTE T)) 
69100		(MOVEM 1 (SPECIAL *NOPOINT)) 
69200		(MOVE 1 -6 P)
69300		(JUMPE 1 TAG7) 
69400		(HRRZ@ 1 1)
69500		(JUMPN 1 TAG11) 
69600		(MOVE 2 -6 P) 
69700		(MOVEI 1 (QUOTE DSK:)) 
69800		(CALL 2 (E CONS)) 
69900		(JRST 0 TAG10) 
70000	TAG11 	(MOVE 1 -6 P) 
70100	TAG12 
70200	TAG10 	(CALL 17 (E OUTPUT)) 
70300		(MOVEI 2 (QUOTE NIL)) 
70400		(MOVEI 1 (QUOTE T)) 
70500		(CALL 2 (E OUTC)) 
70600	TAG7 	(MOVE 1 (SPECIAL PAGEWIDTH)) 
70700		(CALL 1 (E LINELENGTH)) 
70800		(MOVE 1 (SPECIAL %FUNCTIONLIST%)) 
70900		(CALL 1 (E REVERSE)) 
71000		(MOVEM 1 -1 P) 
71100		(CALL 1 (E MAXCOUNT)) 
71200		(MOVEM 1 -4 P) 
71300		(MOVE 1 -1 P) 
71400		(CALL 1 (E MAXWIDTH)) 
71500		(MOVEI 2 (QUOTE 10)) 
71600		(CALL 2 (E *QUO)) 
71700		(CALL 1 (E ADD1)) 
71800		(MOVEI 2 (QUOTE 10)) 
71900		(CALL 2 (E *TIMES)) 
72000		(MOVE 2 1) 
72100		(MOVEM 1 -5 P) 
72200		(MOVE 1 (SPECIAL PAGEWIDTH)) 
72300		(CALL 2 (E *DIF)) 
72400		(MOVEI 2 (QUOTE 10)) 
72500		(CALL 2 (E *QUO)) 
72600		(CALL 1 (E SUB1)) 
72700		(MOVE 2 1) 
72800		(MOVEM 1 0 P) 
72900		(MOVE 1 -4 P) 
73000		(CALL 2 (E *QUO)) 
73100		(CALL 1 (E ADD1)) 
73200		(MOVEM 1 -3 P) 
73300	TAG1 	(MOVE 1 -1 P) 
73400		(JUMPN 1 TAG15) 
73500		(MOVEI 2 (QUOTE T)) 
73600		(CALL 2 (E OUTC)) 
73700		(JRST 0 TAG4) 
73800	TAG15 	(CALL 0 (E TERPRI)) 
73900		(HLRZ@ 1 -1 P) 
74000		(CALL 1 (E PRINC)) 
74100		(HLRZ@ 1 -1 P) 
74200		(CALL 1 (E FLATSIZE)) 
74300		(MOVE 2 1) 
74400		(MOVE 1 -5 P) 
74500		(CALL 2 (E *DIF)) 
74600		(CALL 1 (E PRINTSPACES)) 
74700		(MOVEI 2 (QUOTE %EXECUTIONCOUNT%)) 
74800		(HLRZ@ 1 -1 P) 
74900		(CALL 2 (E GET)) 
75000		(MOVEM 1 -2 P) 
75100		(CALL 1 (E ZEROP)) 
75200		(JUMPN 1 TAG2) 
75300		(MOVE 2 -3 P) 
75400		(MOVE 1 -2 P) 
75500		(CALL 2 (E *QUO)) 
75600		(CALL 1 (E ADD1)) 
75700		(CALL 1 (E PRINTTABS)) 
75800		(MOVE 1 -2 P) 
75900		(CALL 1 (E PRINC)) 
76000	TAG2 	(HRRZ@ 1 -1 P) 
76100		(MOVEM 1 -1 P) 
76200		(JRST 0 TAG1) 
76300	TAG4 	(MOVEI 1 (QUOTE NIL)) 
76400		(SUB P (C 0 0 7 7)) 
76500		(JRST 0 SPECSTR)
76600		NIL 
76700	
76800	(SETQ PAGEWIDTH 120) 
76900	
77000	(SETQ %FUNCTIONLIST% NIL) 
77100	
77200	(SETQ KLIST NIL)
77300	
77400	(SETQ LAPORG SAVELAPORG)
77500	
77600	(SETQ BPORG SAVEBPORG)
77700	
77800	(REMLAP)
77900